package com.ruoyi.system.service;

import com.ruoyi.system.domain.SnUserLib;

import java.util.List;

/**
 * 彩民抽奖信息库Service接口
 *
 * @author ruoyi
 * @date 2022-12-26
 */
public interface ISnUserLibService {
    /**
     * 查询彩民抽奖信息库
     *
     * @param id 彩民抽奖信息库主键
     * @return 彩民抽奖信息库
     */
    public SnUserLib selectSnUserLibById(String id);

    /**
     * 查询彩民抽奖信息库列表
     *
     * @param snUserLib 彩民抽奖信息库
     * @return 彩民抽奖信息库集合
     */
    public List<SnUserLib> selectSnUserLibList(SnUserLib snUserLib);

    /**
     * 新增彩民抽奖信息库
     *
     * @param snUserLib 彩民抽奖信息库
     * @return 结果
     */
    public int insertSnUserLib(SnUserLib snUserLib);

    /**
     * 修改彩民抽奖信息库
     *
     * @param snUserLib 彩民抽奖信息库
     * @return 结果
     */
    public int updateSnUserLib(SnUserLib snUserLib);

    /**
     * 批量删除彩民抽奖信息库
     *
     * @param ids 需要删除的彩民抽奖信息库主键集合
     * @return 结果
     */
    public int deleteSnUserLibByIds(String ids);

    /**
     * 删除彩民抽奖信息库信息
     *
     * @param id 彩民抽奖信息库主键
     * @return 结果
     */
    public int deleteSnUserLibById(String id);

    /**
     * 清空彩民抽奖信息库信息
     *
     * @return
     */
    public int deleteSnUserLib();

    /**
     * 当前已经中奖数量
     *
     * @return
     */
    public int getCurrentLucky();

    /**
     * 获取彩民总数量(去重)
     *
     * @param snUserLib
     * @return
     */
    public int distantSnUserLibCount(SnUserLib snUserLib);

    /**
     * 获取彩民总数量(去重)
     *
     * @param snUserLib
     * @return
     */
    public int selectSnUserLibCount(SnUserLib snUserLib);

    /**
     * 批量保存彩民信息
     *
     * @param snUserLibs
     * @return
     */
    public int batchSaveSnUserLib(List<SnUserLib> snUserLibs) throws RuntimeException;

    /**
     * 判断当前彩民是否已经中奖
     *
     * @param snUserLib
     * @return
     */
    public int isLuckyUser(SnUserLib snUserLib);


    /**
     * 当前已经中奖的彩民
     *
     * @return
     */
    public List<SnUserLib> getCurrentLuckyUsers();

    /**
     * 随机获取1个用户
     *
     * @param snUserLib
     * @return
     */
    public SnUserLib randomOneSnUserLib(SnUserLib snUserLib);
}
